﻿
using iss.sg4210.se18.team6s.jass.DAL.DataAccess.Interfaces;
namespace iss.sg4210.se18.team6s.jass.DAL.DataAccess.MSSQL
{
    public class DataAccessFactorySQL : DataAccessFactory
    {
        private IActions _action = new ActionsDAO();
        private IAddresses _address = new AddressesDAO();
        private IAdvertisement _advertisement = new AdvertisementDAO();
        private IAdvertisementSearchLog _advertisementSearchLog = new AdvertisementSearchLogDAO();
        private IAdvertisementType _advertisementType = new AdvertisementTypeDAO();
        private IAdvertisementViewLog _advertisementViewLog = new AdvertisementViewLogDAO();
        private IAdvertiserAccount _advertiserAccount = new AdvertiserAccountDAO();
        private IAdvertiserAccountTopUpLog _advertiserAccountTopUpLog = new AdvertiserAccountTopUpLogDAO();
        private IAlertCriteria _alertCriteria = new AlertCriteriaDAO();
        private IArticles _articles = new ArticleDAO();
        private ICompany _companyDAO = new CompanyDAO();
        private IEvents _events = new EventsDAO();
        private IGeographicalArea _geographicalDAO = new GeographicalAreaDAO();
        private IResponse _response = new ResponseDAO();
        private IResponseActions _responseActions = new ResponseActionsDAO();
        private ISearch _search = new SearchDAO();

        public override IActions Action { get { return _action; } }
        public override IAddresses Address { get { return _address; } }
        public override IAdvertisement Advertisement { get { return _advertisement; } }
        public override IAdvertisementSearchLog AdvertisementSearchLog { get { return _advertisementSearchLog; } }
        public override IAdvertisementType AdvertisementType { get { return _advertisementType; } }
        public override IAdvertisementViewLog AdvertisementViewLog { get { return _advertisementViewLog; } }
        public override IAdvertiserAccount AdvertiserAccount { get { return _advertiserAccount; } }
        public override IAdvertiserAccountTopUpLog AdvertiserAccountTopUpLog { get { return _advertiserAccountTopUpLog; } }
        public override IAlertCriteria AlertCriteria { get { return _alertCriteria; } }
        public override IArticles Article { get { return _articles; } }
        public override ICompany Company { get { return _companyDAO; } }
        public override IEvents Event { get { return _events; } }
        public override IGeographicalArea GeographicalArea { get { return _geographicalDAO; } }
        public override IResponse Response { get { return _response; } }
        public override IResponseActions ResponseAction { get { return _responseActions; } }
        public override ISearch Search { get { return _search; } }
    }
}
